/**
 * Author(s): xuming.Wong <xuming.Wong@gmail.com>
 */
#ifndef __PQ_EnginePrerequisites_H__
#define __PQ_EnginePrerequisites_H__

// Platform-specific stuff
#include "PQPrerequisites.h"

#include "Ogre.h"
#include "OIS/OIS.h"

//use some ogre class
namespace Ogre
{
	//used as base of our terrain system
	class TerrainGlobalOptions;
	class TerrainGroup;
	class TerrainPaging;
	class PageManager;
	class PagedWorld;

}


namespace PQEngine
{
	// Pre-declare classes
	// Allows use of pointers in header files without including individual .h
	// so decreases dependencies between files
	class Object;
	class Component;
	class GameObject;
	class SceneObject;
	class CameraObject;
	class Event;
	class GameScene;

	//typedefs
	typedef std::vector<Object*> ObjectVector;
	typedef std::vector<Component*> ComponentVector;
	typedef std::vector<GameObject*> GameObjectVector;
}

#endif
